package com.ruoyi.system.api;

import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;

import com.ruoyi.system.api.domain.AAgencyFund;
import com.ruoyi.system.api.factory.RemoteAAgencyFundServiceFactory;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import org.springframework.web.bind.annotation.*;

//name:调用微服务的名字
//fallbackFactory:降级工厂指定
@FeignClient(contextId = "remoteAAgencyFundService" , value = ServiceNameConstants.AGENCY_FUND_SERVICE, fallbackFactory = RemoteAAgencyFundServiceFactory.class)
public interface RemoteAAgencyFundService {
    /**
     * 分页查询
     *
     * @param aAgencyFund 筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */
    @ApiOperation(value = "分页查询使用代收款业务的订单详情")
    @GetMapping("/aAgencyFund/queryByPage")
    public R<Page<AAgencyFund>> queryByPage(AAgencyFund aAgencyFund, PageRequest pageRequest);


    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @ApiOperation(value = "根据id查询单条数据")
    @GetMapping("/aAgencyFund/queryById/{id}")
    public R<AAgencyFund> queryById(@PathVariable(value = "id") Integer id);

    /**
     * 新增数据
     *
     * @param aAgencyFund 实体
     * @return 新增结果
     */
    @ApiOperation(value = "新增进入代收款业务信息")
    @PostMapping("/aAgencyFund/add")
    public R<AAgencyFund> add(@RequestBody AAgencyFund aAgencyFund);


    /**
     * 编辑数据
     *
     * @param aAgencyFund 实体
     * @return 编辑结果
     */
    @ApiOperation(value = "编辑代收业务信息")
    @PutMapping("/aAgencyFund/edit")
    public R<AAgencyFund> edit(@RequestBody AAgencyFund aAgencyFund);

    /**/

    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @ApiOperation(value = "根据id删除代收业务数据")
    @DeleteMapping("/aAgencyFund/deleteById/{id}")
    public R<Boolean> deleteById(@PathVariable Integer id) ;

    @ApiOperation(value = "更新订单的代收款结算状态")
    @PutMapping("/aAgencyFund/updateStatus")
    public R<AAgencyFund> updateStatus(@RequestBody AAgencyFund aAgencyFund);


}
